package com.hzw.saas.web.app.old.storage.dto;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzw.saas.api.old.storage.constants.StatusString;
import com.hzw.saas.common.util.constants.PatternConsts;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @author zzl
 * @since 02/26/2021
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
// @ApiModel("创建目录返回")
public class ResourceFolderPostDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 目录ID
     */
    @ApiModelProperty(value = "目录ID", position = 1)
    private String folderId;

    /**
     * 父目录ID
     */
    @ApiModelProperty(value = "父目录ID", position = 2)
    private String parentId;

    /**
     * 目录名称
     */
    @ApiModelProperty(value = "目录名称", position = 3)
    private String name;

    /**
     * 目录状态
     *
     * @see com.hzw.saas.api.storage.enums.ResourceStatusEnum
     */
    @ApiModelProperty(value = "目录状态, " + StatusString.RESOURCE_STATUS, position = 4)
    private Integer status;

    /**
     * 创建者ID
     */
    @ApiModelProperty(value = "创建者ID", position = 6)
    private String creatorId;

    /**
     * 创建者名称
     */
    @ApiModelProperty(value = "创建者名称", position = 7)
    private String creatorName;

    /**
     * 所有者ID（用户或共享空间）
     */
    @ApiModelProperty(value = "目录所有者ID", position = 8)
    private String ownerId;

    /**
     * 所有者名称
     */
    @ApiModelProperty(value = "所有者名称", position = 9)
    private String ownerName;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间, format=yyyyMMddHHmmss", position = 10)
    @DateTimeFormat(pattern = PatternConsts.PURE_DATETIME_PATTERN)
    @JsonFormat(pattern = PatternConsts.PURE_DATETIME_PATTERN)
    private Date createDate;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间, format=yyyyMMddHHmmss", position = 11)
    @DateTimeFormat(pattern = PatternConsts.PURE_DATETIME_PATTERN)
    @JsonFormat(pattern = PatternConsts.PURE_DATETIME_PATTERN)
    private Date updateDate;


}
